// ManualJointGenerator.h: interface for the ManualJointGenerator class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MANUALJOINTGENERATOR_H__EFABC0C9_AFD5_4FA9_8BAD_E0591A55C382__INCLUDED_)
#define AFX_MANUALJOINTGENERATOR_H__EFABC0C9_AFD5_4FA9_8BAD_E0591A55C382__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "JointGenerator.h"

#include "MoveJig.h"
#include "Joint.h"
#include <afxtempl.h>

class SupportHanger;
class JointFunction;
class ManualJointGenerator : public JointGenerator  
{
public:
	ManualJointGenerator(Part* pNext, AcDbEntity* pEnt);
	virtual ~ManualJointGenerator();

public:
	virtual Joint* Generate();
	
private:
	INT GenerateJoint();
	BOOL GetBasePoint(EntityJig::MoveJig& movejig);

private:
	AcDbEntity* m_pEnt;
	SupportHanger* m_pSH;
	JointFunction* m_pFirstPort;
	JointFunction* m_pNextPort;
	Joint* m_pJoint;
	CArray<JointFunction*, JointFunction*> m_theJoints;
};

#endif // !defined(AFX_MANUALJOINTGENERATOR_H__EFABC0C9_AFD5_4FA9_8BAD_E0591A55C382__INCLUDED_)
